import http from '@/utils/request'

// 商品相关请求

// axios<类型>() 限制r.data的类型
// http<类型>() 限制r.data的类型
function productTongjiRequest() {
  //http函数返回的是什么？promsie对象

  // productSearch 把http函数调用以后promsie对象作为了返回值
  return http<IResData<number>>({
    method: 'get',
    url: '/admin/statistic/product',
    data: {},
  })
}

function userTongjiRequest() {
  //http函数返回的是什么？promsie对象

  // productSearch 把http函数调用以后promsie对象作为了返回值
  return http<IResData<number>>({
    method: 'get',
    url: '/admin/statistic/user',
    data: {},
  })
}

function getkDataRequest() {
  //http函数返回的是什么？promsie对象

  // productSearch 把http函数调用以后promsie对象作为了返回值
  return http<IResData<IKData>>({
    method: 'get',
    url: '/admin/data/kData',
    data: {},
  })
}

interface IKData {
  // x: string[],
  x: Array<string>
  val: Array<Array<number>>
}

interface IResData<T> {
  code: string
  message: string
  data: T
}
interface ISimpleData {
  x: string
  val: number
}
// 下面写法也可以，只不过不能重复利用
// interface IResRRData {
//   code: string
//   message: string
//   data: {
//     x: string
//     val: number
//   }
// }

function getsimpleDataRequest() {
  //http函数返回的是什么？promsie对象

  // productSearch 把http函数调用以后promsie对象作为了返回值
  // IResData 限制了 r.data的类型
  //IResData<泛型> 这个泛型限制了IResData.data的类型
  return http<IResData<Array<ISimpleData>>>({
    method: 'get',
    url: '/admin/data/simpleData',
    data: {},
  })
}

export { productTongjiRequest, userTongjiRequest, getkDataRequest, getsimpleDataRequest }
